
import os
import yaml
from conf.env import BASE_DIR
class YamlTools:
    @staticmethod
    def get_project_path():
        cf = os.path.realpath(__file__)  # 获取当前文件的路径

        cd = os.path.dirname(cf)  # 获取当前文件目录的路径  caw
        cdd = os.path.dirname(cd)  # 获取 cd目录的上一级目录
        # print(cf,cd,cdd+"\\")
        return cdd + "\\"

    @staticmethod
    def read_yaml_file(path):
        path = YamlTools.get_project_path() + "\\testdata\\" + path  # 组合项目内的地址
        print(path)
        with open(path, "r", encoding='utf-8') as f:
            content = f.read()
            # 把yaml 文件 中的数据 转换为 python的 列表 或者 字典格式
            a = yaml.load(content, Loader=yaml.FullLoader)
            return a

    @staticmethod
    def write_yaml_file(data, filename):
        path = BASE_DIR + "\\testdata\\"#文件路径
        filename = path + filename
        # print(filename)
        with open(filename, 'w', encoding='utf-8') as file:
            yaml.dump(data, file, allow_unicode=True)


if __name__ == '__main__':
    #方式一:
    # data = [
    #     {'title': '输入正确的用户名和密码,登录成功', 'username': 'admim', 'password': '123456', 'expect': '签退'},
    #     {'title': '输入空的用户名和正确的密码,登录失败', 'username': '', 'password': '123456',
    #      'expect': '登录失败，请检查您的成员名或密码是否填写正确。'},
    #     {'title': '输入16位的用户名和正确的密码,登录失败', 'username': '1234567890123456', 'password': '123456',
    #      'expect': '登录失败，请检查您的成员名或密码是否填写正确。'},
    #     {'title': '输入正确的用户名和空的密码,登录失败', 'username': 'admin', 'password': '',
    #      'expect': '登录失败，请检查您的成员名或密码是否填写正确。'}
    # ]
    # YamlTools.write_yaml_file(data, "aaa.yaml")
    #方式二:
    aa = YamlTools.read_yaml_file('aaa.yaml')  # 给出项目内的相对地址。
    print(aa)